CREATE PROC [dbo].[Search]
    @Code VARCHAR(MAX),
    @Anbar VARCHAR(3)
AS
DECLARE @TmpCode VARCHAR(30) = NULL;

SET @Code = REPLACE(@Code, '', '');

DECLARE @AnbarStatus TINYINT =
        (
            SELECT CtrMojodi FROM dbo.AnbarId WHERE A_Code = @Anbar
        );

IF LEN(@Code) >= 50
    SET @Code = SUBSTRING(@Code, 4, 13);

SET @TmpCode =
(
    SELECT ISNULL(K_Code, 0) k_code
    FROM KalaId
    WHERE k_code = @Code
          OR (Barcode = @Code)
);


IF (@TmpCode <> '')
    SELECT Name1,
           ISNULL(K.K_Code, ' ') K_Code,
           ISNULL(Price_Consumer, 0) Price_Consumer,
           ISNULL(Price_Forosh, 0) Price_Forosh,
           ISNULL(ProductionPrice, 0) ProductionPrice,
           ISNULL(Mojodi, 0) Mojodi,
           ISNULL(R_Unit1_2, 0) R_Unit1_2,
           CASE
               WHEN @AnbarStatus = 0 THEN
                   0
               WHEN @AnbarStatus = 1 THEN
                   1
               ELSE
                   K.CtrMojodi
           END Ctr
    FROM KalaId K
        INNER JOIN Anbar A
            ON A.K_Code = K.K_Code
               AND A.A_Code = @Anbar
               AND Active_Flag = 0
    WHERE (
              K.K_Code = @Code
              OR K.Barcode = @Code
          );



ELSE
BEGIN
    SET @TmpCode =
    (
        SELECT TOP (1)
               ISNULL(K_Code, 0) k_code
        FROM TblBasket_Kala
        WHERE K_Code_B = @Code
    );

    SELECT Name1,
           ISNULL(K.K_Code, ' ') K_Code,
           ISNULL(Price_Consumer, 0) Price_Consumer,
           ISNULL(Price_Forosh, 0) Price_Forosh,
           ISNULL(ProductionPrice, 0) ProductionPrice,
           ISNULL(Mojodi, 0) Mojodi,
           ISNULL(R_Unit1_2, 0) R_Unit1_2,
           CASE
               WHEN @AnbarStatus = 0 THEN
                   0
               WHEN @AnbarStatus = 1 THEN
                   1
               ELSE
                   K.CtrMojodi
           END Ctr
    FROM KalaId K
        INNER JOIN Anbar A
            ON A.K_Code = K.K_Code
               AND A.A_Code = @Anbar
               AND Active_Flag = 0
    WHERE (
              K.K_Code = @TmpCode
              OR K.Barcode = @TmpCode
          );
END;
